package cn.yh.nft.turbo.base.response;

import lombok.Getter;
import lombok.Setter;

import java.util.List;

/**
 * @ClassName: PageResponse
 * @Author: 草莓爱上啵啵
 *
 *  分页响应
 */
@Getter
@Setter
public class PageResponse<T> extends MultiResponse<T> {
    private static final long serialVersionUID = 1L;


    /**
     *   当前页
     */
    private int currentPage;

    /**
     *  每页结果数
     */
    private int pageSize;

    /**
     *  总页数
     */
    private int totalPage;

    /**
     *  总数
     */
    private int total;


    /**
     *  封装分页响应参数设置
     * @param datas 查询到的分页数据
     * @param total 总数量
     * @param pageSize 每页数量
     * @param currentPage 当前页
     * @return
     * @param <T>
     */
    public static <T> PageResponse<T> of(List<T> datas, int total, int pageSize, int currentPage){
        PageResponse<T> pageResponse = new PageResponse<>();
        pageResponse.setSuccess(true);
        pageResponse.setDatas(datas);
        pageResponse.setTotal(total);
        pageResponse.setPageSize(pageSize);
        pageResponse.setCurrentPage(currentPage);
        pageResponse.setTotalPage((pageSize + total - 1) / pageSize);
        return pageResponse;
    }
}
